package com.dayuanit.spring.demo.factory;

import com.dayuanit.spring.demo.domain.Cat;
import org.springframework.beans.factory.FactoryBean;

/**
 * FactoryBean是创建一个相对来说比较复杂的对象，比如有些对象的属性需要从数据库、内存、网络得到，
 * 那么就只能写代码来创建对象。
 *
 * 面试题：FactoryBean和Beanfactory的区别？  ApplicationContext和BeanFactory的区别？
 */
public class CatFactoryBean implements FactoryBean<Cat> {
    @Override
    public Cat getObject() throws Exception {
        Cat cat = new Cat();
        cat.setPrice(500);
        cat.setColor("green");
        return cat;
    }

    @Override
    public Class<?> getObjectType() {
        return Cat.class;
    }

    @Override
    public boolean isSingleton() {
        return true;
    }
}
